﻿//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//

namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.Nodes
{
    /// <summary>
    /// Enum listing possible node types in the object explorer tree
    /// </summary>
    // TODO Consider replacing this with an auto-gen'd version
    public enum NodeTypes
    {
        None,
        SqlServersRoot,
        Database,
        Server,
        ScalarValuedFunction,
        TableValuedFunction,
        AggregateFunction,
        FileGroup,
        StoredProcedure,
        UserDefinedTableType,
        View,
        Table,
        HistoryTable,
        Folder,
        Databases,
        ExternalResources,
        ServerLevelSecurity,
        ServerLevelServerObjects,
        ServerLevelManagement,
        SystemDatabases,
        ServerLevelLinkedServerLogins,
        ServerLevelServerAudits,
        ServerLevelCryptographicProviders,
        ServerLevelCredentials,
        ServerLevelServerRoles,
        ServerLevelLogins,
        ServerLevelEventSessions,
        ServerLevelServerAuditSpecifications,
        ServerLevelEventNotifications,
        ServerLevelErrorMessages,
        ServerLevelServerTriggers,
        ServerLevelLinkedServers,
        ServerLevelEndpoints,
        SystemScalarValuedFunctions,
        SystemTableValuedFunctions,
        SystemFunctions,
        DacInstancesFolder,
        Tables,
        Views,
        Synonyms,
        Programmability,
        ServiceBroker,
        Storage,
        Security,
        SystemTables,
        FileTables,
        SystemViews,
        StoredProcedures,
        Functions,
        ExtendedStoredProcedures,
        DatabaseTriggers,
        Defaults,
        Rules,
        Types,
        Assemblies,
        MessageTypes,
        Contracts,
        Queues,
        Services,
        Routes,
        DatabaseAndQueueEventNotifications,
        RemoteServiceBindings,
        BrokerPriorities,
        FileGroups,
        FullTextCatalogs,
        FullTextStopLists,
        SqlLogFiles,
        PartitionFunctions,
        PartitionSchemes,
        SearchPropertyLists,
        Users,
        Roles,
        Schemas,
        AsymmetricKeys,
        Certificates,
        SymmetricKeys,
        DatabaseEncryptionKeys,
        MasterKeys,
        Signatures,
        DatabaseAuditSpecifications,
        Columns,
        Keys,
        Constraints,
        Triggers,
        Indexes,
        Statistics,
        TableValuedFunctions,
        ScalarValuedFunctions,
        AggregateFunctions,
        SystemDataTypes,
        UserDefinedDataTypes,
        UserDefinedTableTypes,
        UserDefinedTypes,
        XmlSchemaCollections,
        SystemExactNumerics,
        SystemApproximateNumerics,
        SystemDateAndTimes,
        SystemCharacterStrings,
        SystemUnicodeCharacterStrings,
        SystemBinaryStrings,
        SystemOtherDataTypes,
        SystemClrDataTypes,
        SystemSpatialDataTypes,
        UserDefinedTableTypeColumns,
        UserDefinedTableTypeKeys,
        UserDefinedTableTypeConstraints,
        SystemStoredProcedures,
        StoredProcedureParameters,
        TableValuedFunctionParameters,
        ScalarValuedFunctionParameters,
        AggregateFunctionParameters,
        DatabaseRoles,
        ApplicationRoles,
        FileGroupFiles,
        SystemMessageTypes,
        SystemContracts,
        SystemServices,
        SystemQueues,
        Sequences,
        SecurityPolicies,
        DatabaseScopedCredentials,
        ExternalTables,
        ExternalResource,
        ExternalDataSources,
        ExternalFileFormats,
        ExternalTable,
        AlwaysEncryptedKeys,
        ColumnMasterKeys,
        ColumnEncryptionKeys
    }
}
